bb=require('./01-模块的封装.js')
sm2 = require('sm-crypto').sm2;
sm3 = require('sm-crypto').sm3;
sm4 = require('sm-crypto').sm4;
const { createHash } = require('crypto');
/**
 * sm4 对称加密
 * 1. 生成密钥
 * 2. 加密
bb.aa()
/**
 * sm2 非对称加密
 * 1. 生成密钥对
 * 2. 加密
 * 3. 解密
 */
Key = sm2.generateKeyPairHex();
var privateKey = Key.privateKey; // 私钥
var publicKey = Key.publicKey; // 公钥
var msg = 'hello world'; // 明文
var ciphertext = sm2.doEncrypt(msg, publicKey); // 加密
var plaintext = sm2.doDecrypt(ciphertext, privateKey); // 解密
console.log(plaintext);

/**
 * sm3 哈希假面
 * 1. 加密
 * 2. 解密
 * 64位长度，对标sha256
 * */

var msg = 'hello sm3'; // 明文
var hash = sm3(msg); // 加密
console.log(hash);

/**
 * sm4 对称加密
 * 1. 密钥128位
 * 2. 加密
 * 3. 解密
 */

var msg = 'hello sm4'; // 明文
var ciphertext = sm4.encrypt( msg,'0123456789ABCDEF0123456789ABCDEF'); // 加密
console.log(ciphertext);